﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Espam.Idiomas.Decimo.Tesis.Datos;
using System.Data;
using System.Data.SqlClient;

namespace Espam.Idiomas.Decimo.Tesis.Negocio
{
   public class Ciclos
    {
       public int idCiclo { get; set; }
       public int ciclo { get; set; }
        public string fechaInicio { get; set; }
        public string fechaFin { get; set; }
        public string  codigo { get; set; }
        public int GetMaxCiclo()
       {
           BaseDatos oBase = new BaseDatos();
           SqlDataReader reader;
           List<Ciclos> lista = new List<Ciclos>();
           try
           {
               string consulta = string.Format("sp_getMaxCiclo");
               SqlCommand comando = new SqlCommand(consulta, oBase.conexion);
               comando.CommandType = CommandType.StoredProcedure;
               oBase.Conectar();
               reader = comando.ExecuteReader();
               while (reader.Read())
               {
                  ciclo = reader.GetInt32(0);
               }
               
           }
           catch (Exception)
           {
               throw;
           }
           finally
           {
               oBase.CerrarConexion();
           }
           return ciclo;
           
       }

       public List<Ciclos> GetCiclos()
       {
           List<Ciclos> lista = new List<Ciclos>();
           BaseDatos oBase = new BaseDatos();
           SqlDataReader reader;
           try
           {
               SqlCommand comando = new SqlCommand("sp_getCiclos",oBase.conexion);
               comando.CommandType = CommandType.StoredProcedure;

               oBase.Conectar();
               reader = comando.ExecuteReader();
               while (reader.Read())
               {
                   Ciclos oCiclo = new Ciclos();
                   oCiclo.idCiclo = reader.GetInt32(0);
                   oCiclo.ciclo = reader.GetInt32(1);
                   lista.Add(oCiclo);
               }
           }
           catch (Exception)
           {
               lista = null;
           }
           finally
           {
               oBase.CerrarConexion();
           }
           return lista;
       }
        public List<Ciclos> GetReporteCiclos()
        {
            List<Ciclos> lista = new List<Ciclos>();
         
     
            try
            {
                string query = "exec sp_consultarModulosxCiclos @ciclo =" + ciclo;
                Consultas oc = new Consultas();
                oc.consulta = query;
                DataTable tabla = new DataTable();

                tabla = oc.consultaBase();
                var listaC = tabla.AsEnumerable().ToList();

                
                foreach (var item in listaC)
                {
                    Ciclos oCiclo = new Ciclos();
                    oCiclo.fechaInicio = item.ItemArray[0].ToString();
                    oCiclo.fechaFin = item.ItemArray[1].ToString();
                    oCiclo.codigo = item.ItemArray[2].ToString();
                    lista.Add(oCiclo);
                }


               
            }
            catch (Exception ex)
            {
                lista = null;
            }
            finally
            {
                //oBase.CerrarConexion();
            }
            return lista;
        }
    }
}
